package com.telit.firecommand.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * 叙简设备DTO
 *
 * @author yuezhuang
 * @date 2022-10-19
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "XjMemDTO", description = "叙简设备DTO")
public class XjMemDTO implements Serializable {

    private static final long serialVersionUID = -1L;

    @ApiModelProperty(value = "ID", required = true)
    private Long id;

    @ApiModelProperty(value = "创建时间", required = true)
    private Date createdAt;

    @ApiModelProperty(value = "创建人", required = true)
    private Long createdBy;

    @ApiModelProperty(value = "修改时间", required = true)
    private Date updatedAt;

    @ApiModelProperty(value = "修改人", required = true)
    private Long updatedBy;

    @ApiModelProperty(value = "逻辑删除标记", required = true, allowableValues = "true,false", hidden = true)
    private boolean deleted;

    @ApiModelProperty(value = "版本号", required = true)
    private Long version;

    @ApiModelProperty(value = "叙简 Id")
    private String xjId;

    @ApiModelProperty(value = "部门id")
    private Long deptId;

    @ApiModelProperty(value = "叙简 部门id")
    private String xjDeptId;

    @ApiModelProperty(value = "叙简 部门名称")
    private String xjDeptName;

    @ApiModelProperty(value = "叙简 成员编号")
    private String xjMemCode;

    @ApiModelProperty(value = "叙简 成员姓名")
    private String xjMemName;

    @ApiModelProperty(value = "叙简 性别: 1-男; 2-女")
    private Integer xjSex;

    @ApiModelProperty(value = "叙简 号码1")
    private String xjMemTel;

    @ApiModelProperty(value = "叙简 号码2")
    private String xjMemTel2;

    @ApiModelProperty(value = "叙简 成员类型:0-一般用户；1-视频话机用户；2-移动终端用户；")
    private Integer xjMemType;

    @ApiModelProperty(value = "叙简 手机号码")
    private String xjMemMobile;

    @ApiModelProperty(value = "叙简 传真")
    private String xjMemFax;

    @ApiModelProperty(value = "叙简 邮箱")
    private String xjMemEmail;

    @ApiModelProperty(value = "叙简 图片")
    private String xjMemPicture;

    @ApiModelProperty(value = "叙简 视频")
    private String xjMemVideo;

    @ApiModelProperty(value = "叙简 GIS坐标")
    private String xjMemGis;

    @ApiModelProperty(value = "叙简 组织编码")
    private String xjOrgCode;

    @ApiModelProperty(value = "叙简 是否激活：true/false")
    private boolean xjIsActive;

    @ApiModelProperty(value = "叙简 等级")
    private String xjMemLevel;

    @ApiModelProperty(value = "叙简 排序")
    private Integer xjSortIndex;

    @ApiModelProperty(value = "统一平台 部门id")
    private Long ptDeptId;

    @ApiModelProperty(value = "统一平台 部门名称")
    private String ptDeptName;

    @ApiModelProperty(value = "经度")
    private String longitude;

    @ApiModelProperty(value = "纬度")
    private String latitude;

    @ApiModelProperty(value = "所属区域编码")
    private String areaCode;

    @ApiModelProperty(value = "分类集合")
    private List<XjCategoryDTO> categoryList;

    /**
     * 功能（type）集合 1-视频 2-音频
     *
     * @see com.telit.firecommand.entity.XjCategory#type
     */
    @ApiModelProperty(value = "功能集合 1-视频 2-音频")
    private Set<Integer> functionSet;

}
